The present invention relates to a load balancer and a load balancing method for use with a request processing system in a virtual environment for distributing requests issued to the system to a plurality of virtual servers.
Due to advance and development in performance of hardware, attention has been drawn to a server virtualizing technique to logically divide one physical server into a plurality of virtual servers. According to this technique, resources available for virtual servers may be freely selected for allocation thereof to the virtual servers from the resources of the physical server such as a Central Processing Unit (CPU), a memory, a hard disk, and a network. Also, for a resource thus allocated, a plurality of virtual servers may designate sharing of the resource to thereby share the resource among the virtual servers. In such situation, even when one of the virtual servers completely used up the resource shared thereto, if any one of the virtual servers has a remaining portion of the associated resource shared thereto, it is possible to use the portion of the resource until the total amount of resource assigned to the virtual servers is completely used.
In a web system, a scale-out scheme is employed to improve the system processing performance. According to the scale-out scheme, a plurality of servers to execute mutually same processing are employed such that requests are distributed to the servers by use of a load balancer, to thereby improve the overall system processing performance.
Load balancing algorithms to determine one of the servers to process a request include a least connection algorithm and a least processing algorithm.
According to the least connection algorithm, the system selects one of the servers having the smallest number of connections to the load balancer, to distribute the request to the server.
According to the least processing algorithm, an agent to monitor a CPU utilization is installed in each of the servers such that the system selects one of the servers having the lowest CPU utilization, to distribute the request to the server.
JP-A-2009-087213 describes a job assigning scheme in which surplus processing capacity is calculated for each of the computers based on a performance value unique to the computer such as the Million Instructions Per Second (MIPS), a CPU utilization, and a threshold of the CPU utilization of the computer, to thereby assign a job to one of the computers having the largest surplus processing capacity.